#include <utils.h>

#if HAVE_CONFIG_H
# include <config.h>
#endif

#include <assert.h>
#include <ctype.h>

#define RAND_TABLE_SIZE 2500

static int rand_index = 0;


char* trim_string(char* s)
{
  while (*s != '\0' && isspace(*s))
    ++s;
  char* end = s;
  for (char* c = s; *c != '\0'; ++c)
    if (!isspace(*c))
      end = c;
  ++end;
  *end = '\0';
  return s;
}


static uint64_t rand_table[RAND_TABLE_SIZE] = {
  UINT64_C(4927809757310685392),   UINT64_C(14271246212860182495),
  UINT64_C(6601423035878672296),   UINT64_C(5810339157753085172),
  UINT64_C(977245494504141455),   UINT64_C(8658129982603246197),
  UINT64_C(7604543454878555361),   UINT64_C(7801785147240997953),
  UINT64_C(4658893625393413626),   UINT64_C(17822919624572037208),
  UINT64_C(15191290617504287909),   UINT64_C(6542845102214082583),
  UINT64_C(6783608825082414754),   UINT64_C(1703593961632584921),
  UINT64_C(1722797026012247912),   UINT64_C(1815978189024041027),
  UINT64_C(17439602950410696423),   UINT64_C(6821645447316870575),
  UINT64_C(10253554572380335511),   UINT64_C(12554811012982350273),
  UINT64_C(7384400747273063733),   UINT64_C(3645806713013453628),
  UINT64_C(17217991880538378185),   UINT64_C(5892486514127225386),
  UINT64_C(15725298998172717219),   UINT64_C(11707477885383261980),
  UINT64_C(9301795872059183344),   UINT64_C(16785581246626132625),
  UINT64_C(4201232513648719177),   UINT64_C(16592432563857050067),
  UINT64_C(3859498736782032735),   UINT64_C(6920024294425769702),
  UINT64_C(12365472277957377548),   UINT64_C(3599642045380815259),
  UINT64_C(4231038731792202637),   UINT64_C(5626564140981473108),
  UINT64_C(17591797669982748334),   UINT64_C(17281585518558607530),
  UINT64_C(6397252692252748451),   UINT64_C(6583418820423509221),
  UINT64_C(6941183176069561738),   UINT64_C(3867884968342346019),
  UINT64_C(3368368966516372376),   UINT64_C(15428999747557460588),
  UINT64_C(4287907295717903815),   UINT64_C(1323342263659421075),
  UINT64_C(17427177045958005331),   UINT64_C(10388603561004673286),
  UINT64_C(12610263846131960771),   UINT64_C(4279226094278719076),
  UINT64_C(8930796153461153945),   UINT64_C(14201735087194328756),
  UINT64_C(13656955569802022069),   UINT64_C(4693878528133178892),
  UINT64_C(15344236013144451963),   UINT64_C(8922478558942156369),
  UINT64_C(3961290485741327079),   UINT64_C(6365288536625571132),
  UINT64_C(13927767524082173229),   UINT64_C(4918021845786248122),
  UINT64_C(13203966848378134835),   UINT64_C(3972768308230080298),
  UINT64_C(8258754448057331520),   UINT64_C(6628013901090872735),
  UINT64_C(2691243923282395218),   UINT64_C(17715404385763677858),
  UINT64_C(16456173770431461072),   UINT64_C(10666945485960702045),
  UINT64_C(7437138565196460775),   UINT64_C(11582245869445359194),
  UINT64_C(8545011408153643428),   UINT64_C(17587804122226157491),
  UINT64_C(16691662836587200132),   UINT64_C(17270260273909604583),
  UINT64_C(4954396964103322219),   UINT64_C(12299815920391631479),
  UINT64_C(4207371161268608891),   UINT64_C(15279127926604815802),
  UINT64_C(1837034923220418620),   UINT64_C(4090825765798047915),
  UINT64_C(2840099516861496968),   UINT64_C(9763470130539208272),
  UINT64_C(8084275634706360732),   UINT64_C(14582144246976929630),
  UINT64_C(14263727801973645235),   UINT64_C(10395721274228036049),
  UINT64_C(514568008029055044),   UINT64_C(6241539113786419959),
  UINT64_C(15290171930795782604),   UINT64_C(908600328841731891),
  UINT64_C(14856986525627792390),   UINT64_C(918871079403624335),
  UINT64_C(17584348257480943435),   UINT64_C(17186548731617145986),
  UINT64_C(13488886195485516103),   UINT64_C(9496292852445225288),
  UINT64_C(15049873517102539786),   UINT64_C(4988610957368929788),
  UINT64_C(15690745933790147011),   UINT64_C(10667454039494101935),
  UINT64_C(4061054514030045474),   UINT64_C(15191664921676424649),
  UINT64_C(12272388065368276320),   UINT64_C(18055362519621491537),
  UINT64_C(11236416825218217556),   UINT64_C(5493163532515405016),
  UINT64_C(257648110233972998),   UINT64_C(10814849258041085349),
  UINT64_C(9840808855273048912),   UINT64_C(3699220189051182661),
  UINT64_C(2637503216673053551),   UINT64_C(17370789383609530823),
  UINT64_C(16951506053855905820),   UINT64_C(18003652587407881453),
  UINT64_C(6849891160565141467),   UINT64_C(5332064958543653188),
  UINT64_C(14009342494792625045),   UINT64_C(12750790578266203319),
  UINT64_C(6565574398259491280),   UINT64_C(729417987474927967),
  UINT64_C(12093417135315944850),   UINT64_C(6183603707272422680),
  UINT64_C(11756458682296281137),   UINT64_C(4631588393855661036),
  UINT64_C(11872854459335541509),   UINT64_C(9785837093080562285),
  UINT64_C(10484731964800771303),   UINT64_C(10685481589999044666),
  UINT64_C(13688559135146986181),   UINT64_C(5411376872569405040),
  UINT64_C(9734948608471342224),   UINT64_C(14920555013621743149),
  UINT64_C(8727308988591496745),   UINT64_C(12007198421686838751),
  UINT64_C(9527772781727909385),   UINT64_C(12572365272060120549),
  UINT64_C(173155723606125649),   UINT64_C(1419806290504733807),
  UINT64_C(1801712539492650523),   UINT64_C(1328049219136392396),
  UINT64_C(12654624485124039573),   UINT64_C(11547018584133133524),
  UINT64_C(15103482256016031550),   UINT64_C(4873983841784095556),
  UINT64_C(8908539775016897579),   UINT64_C(11898445043028193254),
  UINT64_C(11546305826067580125),   UINT64_C(7813105905099236970),
  UINT64_C(10855450211022588750),   UINT64_C(866353370081197523),
  UINT64_C(10801504358861945083),   UINT64_C(18349155616327696444),
  UINT64_C(9264900823953537566),   UINT64_C(13663749794048911151),
  UINT64_C(11145246393248549306),   UINT64_C(12666054485215167753),
  UINT64_C(3094767050008995684),   UINT64_C(2888650585727195917),
  UINT64_C(14050745590366048230),   UINT64_C(12765740201897062719),
  UINT64_C(10693863539177587419),   UINT64_C(17872212883198913007),
  UINT64_C(8043050529599340986),   UINT64_C(10188448322581195984),
  UINT64_C(20437937556815884),   UINT64_C(3226459085383136642),
  UINT64_C(10701171580300567520),   UINT64_C(17662536982622387284),
  UINT64_C(2055083838875394038),   UINT64_C(9484281347988300589),
  UINT64_C(3147943425231890741),   UINT64_C(6754587977059600225),
  UINT64_C(830626194677641910),   UINT64_C(5612454360929512423),
  UINT64_C(1479406068573915925),   UINT64_C(8402703746057297615),
  UINT64_C(9933098553178042975),   UINT64_C(9712867439314035129),
  UINT64_C(13089230162271703216),   UINT64_C(11237148915525716207),
  UINT64_C(4960191433201376655),   UINT64_C(11318524632625096999),
  UINT64_C(14481197744286282451),   UINT64_C(7797902877790238267),
  UINT64_C(3879850164707994423),   UINT64_C(16050136924614578439),
  UINT64_C(12099072467048094035),   UINT64_C(1180198245971596496),
  UINT64_C(16878961168774500948),   UINT64_C(6953672312147576186),
  UINT64_C(2535433750481328309),   UINT64_C(8444949320204389006),
  UINT64_C(3050035774103945337),   UINT64_C(1405012066014505106),
  UINT64_C(1743990527661317494),   UINT64_C(13759436456952999391),
  UINT64_C(8676753338428318422),   UINT64_C(1356408996325284079),
  UINT64_C(3392271043961220897),   UINT64_C(8869901216906479323),
  UINT64_C(14765921254675311776),   UINT64_C(10069938063080564651),
  UINT64_C(3275139952853579825),   UINT64_C(5709805517853295779),
  UINT64_C(13331175957653433830),   UINT64_C(3574555990068178393),
  UINT64_C(4617118079558050495),   UINT64_C(3247258969739587645),
  UINT64_C(13231030070791683316),   UINT64_C(14252806384403122422),
  UINT64_C(14858264164400645106),   UINT64_C(11222637587884411931),
  UINT64_C(1830484050534028905),   UINT64_C(842685773244863654),
  UINT64_C(18283908893078659209),   UINT64_C(6464595417490188119),
  UINT64_C(12253685395557560168),   UINT64_C(3401715425489503624),
  UINT64_C(11323202203249018416),   UINT64_C(3471720710332650793),
  UINT64_C(4703488593560807347),   UINT64_C(2235803164685790554),
  UINT64_C(11416695433070297449),   UINT64_C(11446035950639023636),
  UINT64_C(15115467219319888716),   UINT64_C(10483354441148932531),
  UINT64_C(9168440355141005048),   UINT64_C(16080781466285636242),
  UINT64_C(16311509966655952833),   UINT64_C(6788199146448693501),
  UINT64_C(1129696935180687698),   UINT64_C(3901857566087677448),
  UINT64_C(15446641906297483438),   UINT64_C(10627402175722889904),
  UINT64_C(9452240371676210040),   UINT64_C(13618840415734473613),
  UINT64_C(6027068401376097808),   UINT64_C(10379429824147737641),
  UINT64_C(9755450458837245647),   UINT64_C(11135549373694882824),
  UINT64_C(7357284130583108930),   UINT64_C(7066283119830615862),
  UINT64_C(3056496576435262632),   UINT64_C(10091844695815806903),
  UINT64_C(536307313884452989),   UINT64_C(18374400739478509650),
  UINT64_C(12992343201980087226),   UINT64_C(11060354402247265308),
  UINT64_C(1990909899032981641),   UINT64_C(2609227427174913261),
  UINT64_C(4056927600821045521),   UINT64_C(15513365333690502220),
  UINT64_C(17325779548199639089),   UINT64_C(4661462230757442499),
  UINT64_C(11579906013799487973),   UINT64_C(9750688462046696786),
  UINT64_C(11403188794459126643),   UINT64_C(10255279623097499317),
  UINT64_C(11122874845150469776),   UINT64_C(10668689203688750202),
  UINT64_C(1757210867441023308),   UINT64_C(15860329583301255186),
  UINT64_C(14651327408545411139),   UINT64_C(1253694128218708666),
  UINT64_C(16343462326791086652),   UINT64_C(8961121351104030389),
  UINT64_C(13788800127559043528),   UINT64_C(8416523830323718717),
  UINT64_C(1660316589230410589),   UINT64_C(14762280247242780074),
  UINT64_C(2173044259715007184),   UINT64_C(17850382114105397803),
  UINT64_C(15352284352228737677),   UINT64_C(11527719367829896198),
  UINT64_C(6745959540270070568),   UINT64_C(7073129895030593),
  UINT64_C(6529603731049518596),   UINT64_C(4609049898270569708),
  UINT64_C(12701564002444057855),   UINT64_C(18378620845687671573),
  UINT64_C(9628771929683457284),   UINT64_C(13066842954700617371),
  UINT64_C(2486593561030068570),   UINT64_C(17322338665535045645),
  UINT64_C(9995108261002802352),   UINT64_C(9118595991745513784),
  UINT64_C(13628985810618968889),   UINT64_C(3292341335828739955),
  UINT64_C(14864063300376904364),   UINT64_C(4170271335941259642),
  UINT64_C(524089267356753794),   UINT64_C(6269865525914706775),
  UINT64_C(6877749485259350387),   UINT64_C(7081369993116371201),
  UINT64_C(7994830187075336303),   UINT64_C(16105310023303518371),
  UINT64_C(15936482080127042160),   UINT64_C(12579499052858727258),
  UINT64_C(8259302658809818436),   UINT64_C(12219740905384491645),
  UINT64_C(3375135897559786916),   UINT64_C(487653593075527570),
  UINT64_C(11526214372919742664),   UINT64_C(10536378989734008800),
  UINT64_C(6675280485162358149),   UINT64_C(17857164264490797412),
  UINT64_C(3604244680167366087),   UINT64_C(1308687751307389555),
  UINT64_C(142534069278351537),   UINT64_C(14515920984282100524),
  UINT64_C(3693337939025792061),   UINT64_C(16777496214340453537),
  UINT64_C(8295426286595126268),   UINT64_C(780274542549984194),
  UINT64_C(8509328731873953341),   UINT64_C(14361634010780980313),
  UINT64_C(7644294582317933905),   UINT64_C(6794983083189963623),
  UINT64_C(11365680050935829151),   UINT64_C(5776517328299529195),
  UINT64_C(7485802196881787903),   UINT64_C(5982205409653845959),
  UINT64_C(1224289311856469538),   UINT64_C(10150896866206333750),
  UINT64_C(3066569638587759270),   UINT64_C(10142074174498057505),
  UINT64_C(11464332419338055585),   UINT64_C(10392786902039882389),
  UINT64_C(17588952911110667010),   UINT64_C(14555491931243137299),
  UINT64_C(10238254954490219163),   UINT64_C(17828778080140350394),
  UINT64_C(14339349883796351069),   UINT64_C(1902112304098497778),
  UINT64_C(16705479493015312720),   UINT64_C(4862697159368004157),
  UINT64_C(4091096424220656451),   UINT64_C(10785630831851315502),
  UINT64_C(4111833847641895689),   UINT64_C(9413341158535130718),
  UINT64_C(3925483442268051782),   UINT64_C(6381548937438526756),
  UINT64_C(1724542756845538384),   UINT64_C(11858333775108143353),
  UINT64_C(1891821605790093137),   UINT64_C(964098747238221584),
  UINT64_C(5976260448161434587),   UINT64_C(10508229386155684782),
  UINT64_C(5263869415037348611),   UINT64_C(5597086315852531076),
  UINT64_C(13726278404369627345),   UINT64_C(13552505128473575961),
  UINT64_C(16192580476500282074),   UINT64_C(2672329365037622049),
  UINT64_C(1711294041659145193),   UINT64_C(15153850388911977574),
  UINT64_C(500582796497390823),   UINT64_C(8945875290960958739),
  UINT64_C(12142121893035784835),   UINT64_C(14325862159315865352),
  UINT64_C(4942245282198308313),   UINT64_C(3658663422157531263),
  UINT64_C(6402880319008947179),   UINT64_C(3364145360457639025),
  UINT64_C(17595908836163898072),   UINT64_C(396244124509244809),
  UINT64_C(12080601587509205349),   UINT64_C(3866272133487220426),
  UINT64_C(9669434191748125396),   UINT64_C(12015718013838323859),
  UINT64_C(13703746484037786050),   UINT64_C(9649947332254709759),
  UINT64_C(14306199309289635585),   UINT64_C(9691249661419747516),
  UINT64_C(17329931035779238161),   UINT64_C(15376999719940943797),
  UINT64_C(11407186950448601825),   UINT64_C(2737675708598973559),
  UINT64_C(15520320328929391764),   UINT64_C(15185187749359001419),
  UINT64_C(15341493953186057834),   UINT64_C(14246216264189366964),
  UINT64_C(1311752378504938721),   UINT64_C(13164212631283898227),
  UINT64_C(10768377387040352239),   UINT64_C(5768513814549670247),
  UINT64_C(17635712498229296447),   UINT64_C(2577471571770722447),
  UINT64_C(1496763397915697437),   UINT64_C(17357868156011029667),
  UINT64_C(6135241833523408290),   UINT64_C(14420067253769678768),
  UINT64_C(17043098803039975882),   UINT64_C(394234058247554864),
  UINT64_C(10380351791034842163),   UINT64_C(14665930736633860801),
  UINT64_C(5589130802195730439),   UINT64_C(18231664784357933422),
  UINT64_C(1138896276774863532),   UINT64_C(6164409539758791776),
  UINT64_C(9239583752349442592),   UINT64_C(10207437846768701309),
  UINT64_C(7300934658781005536),   UINT64_C(15729302769017325577),
  UINT64_C(4334648730196249960),   UINT64_C(15635769904650369924),
  UINT64_C(15398565341426816520),   UINT64_C(4693164803326839706),
  UINT64_C(8801422726177166384),   UINT64_C(4378013647084729836),
  UINT64_C(15275691356425574350),   UINT64_C(10168422869377796836),
  UINT64_C(10438814209503928170),   UINT64_C(15718651094499394377),
  UINT64_C(1068543539350221263),   UINT64_C(7256136780557555526),
  UINT64_C(2324736478094979557),   UINT64_C(7541781346612098782),
  UINT64_C(14710263862358953066),   UINT64_C(18396143727489227397),
  UINT64_C(9661853828602538437),   UINT64_C(8807771602122631435),
  UINT64_C(13832701559217591403),   UINT64_C(6204868256867899675),
  UINT64_C(5667209836685480700),   UINT64_C(1560034923787627867),
  UINT64_C(4507715794914553261),   UINT64_C(1795878681126307729),
  UINT64_C(14891708195095594487),   UINT64_C(16312177605548324935),
  UINT64_C(1595915344999558626),   UINT64_C(14154522087533057204),
  UINT64_C(533664473774029562),   UINT64_C(2587565696718608319),
  UINT64_C(472096024889935195),   UINT64_C(15532549275141899922),
  UINT64_C(7308938667892553269),   UINT64_C(10106249890592802735),
  UINT64_C(15548085976457038676),   UINT64_C(5217800299487855866),
  UINT64_C(1630173904637775104),   UINT64_C(9447283087552030670),
  UINT64_C(2337458309969740580),   UINT64_C(4766101333691282368),
  UINT64_C(8168707180165742800),   UINT64_C(4105170633789662208),
  UINT64_C(7858784459784835129),   UINT64_C(1919928593071373067),
  UINT64_C(15353139446863222360),   UINT64_C(14145773556683767662),
  UINT64_C(13657652589540277902),   UINT64_C(6971322886965229749),
  UINT64_C(5419510325068895496),   UINT64_C(18010866874382290519),
  UINT64_C(10015744509975170395),   UINT64_C(12660035717867024526),
  UINT64_C(6747992575915745025),   UINT64_C(9928650825085002096),
  UINT64_C(11016409054094664251),   UINT64_C(10827624964625136604),
  UINT64_C(16254876995494341422),   UINT64_C(10820399510627929225),
  UINT64_C(9885768841800308226),   UINT64_C(5053160239547949429),
  UINT64_C(9406896014443530497),   UINT64_C(834831860693636435),
  UINT64_C(5576946080912378580),   UINT64_C(12124256046166367036),
  UINT64_C(10129224653439309480),   UINT64_C(12206776430491917103),
  UINT64_C(17601632101027646771),   UINT64_C(8346255582836461996),
  UINT64_C(814839184053220987),   UINT64_C(14099814731309907952),
  UINT64_C(2620667947184588760),   UINT64_C(18388064984651916515),
  UINT64_C(5604146299784330500),   UINT64_C(12370161470348446807),
  UINT64_C(6347338940213331945),   UINT64_C(4267101539001086330),
  UINT64_C(4782050459091013768),   UINT64_C(1840426657666539430),
  UINT64_C(10744818915026122416),   UINT64_C(16652558402174746319),
  UINT64_C(10994542722895821607),   UINT64_C(11832062315545083462),
  UINT64_C(4994405035861199833),   UINT64_C(236262382811582036),
  UINT64_C(15043131512287915590),   UINT64_C(8033869476150762987),
  UINT64_C(13105746317205950328),   UINT64_C(2756954013782735013),
  UINT64_C(10594580069863179996),   UINT64_C(11901271068822366800),
  UINT64_C(10224122767891749589),   UINT64_C(7820429328929453783),
  UINT64_C(14757503285532533522),   UINT64_C(5873873285652422543),
  UINT64_C(17303138249428444559),   UINT64_C(2131483564103638902),
  UINT64_C(3978495144036093980),   UINT64_C(16431013942951768640),
  UINT64_C(5342912427283942868),   UINT64_C(1494093699014917746),
  UINT64_C(11601440034938852458),   UINT64_C(2308135172036748345),
  UINT64_C(17824805445353324971),   UINT64_C(15646685855956686211),
  UINT64_C(17160606378526471091),   UINT64_C(5889547979656224123),
  UINT64_C(600097841304229815),   UINT64_C(9042914135228742599),
  UINT64_C(3011096667131221542),   UINT64_C(6193139325016806936),
  UINT64_C(4352424027743959929),   UINT64_C(5983727836754788248),
  UINT64_C(16279994009652115020),   UINT64_C(2637394828895944121),
  UINT64_C(576380579846475582),   UINT64_C(1436568258016848065),
  UINT64_C(13178204533408009320),   UINT64_C(8509969186061222896),
  UINT64_C(16086336806064678937),   UINT64_C(14513915470994992444),
  UINT64_C(16852428491727753607),   UINT64_C(6630854994273804263),
  UINT64_C(13268072415716582935),   UINT64_C(18026660110138724165),
  UINT64_C(2553000899290996867),   UINT64_C(13624114842413078997),
  UINT64_C(9576853529048879740),   UINT64_C(8789065714371457577),
  UINT64_C(7058211744688334040),   UINT64_C(18430372714492043760),
  UINT64_C(187025191597661951),   UINT64_C(14835396056209319901),
  UINT64_C(836358097477677479),   UINT64_C(14182654254556159702),
  UINT64_C(17730383863762353125),   UINT64_C(13158375713679182654),
  UINT64_C(13215661087905613717),   UINT64_C(8874391256831368732),
  UINT64_C(1380742603002191034),   UINT64_C(11652251674114782406),
  UINT64_C(8086327924907315687),   UINT64_C(15578408443266592903),
  UINT64_C(16118634725927035083),   UINT64_C(8808073838420007096),
  UINT64_C(1086089103341375858),   UINT64_C(2039168859457601487),
  UINT64_C(8560784149074671600),   UINT64_C(15810098064857835209),
  UINT64_C(33817100125308293),   UINT64_C(13811282495188059834),
  UINT64_C(8621983425600179793),   UINT64_C(17623231392744273510),
  UINT64_C(9778528324668548411),   UINT64_C(7527391407387567376),
  UINT64_C(2040219173466359048),   UINT64_C(2201111933274837878),
  UINT64_C(7723648730642713966),   UINT64_C(10304342963621401410),
  UINT64_C(317304762561596596),   UINT64_C(4540482158762215870),
  UINT64_C(13067994708636026317),   UINT64_C(3863350340026189428),
  UINT64_C(16856645847231465715),   UINT64_C(12439141813008851256),
  UINT64_C(4760997011570442276),   UINT64_C(401967962417778749),
  UINT64_C(3678740399635681424),   UINT64_C(9858822035721617159),
  UINT64_C(4924270071302100501),   UINT64_C(7262276663775551396),
  UINT64_C(1179304705994826683),   UINT64_C(3174782253907525763),
  UINT64_C(16484859235739000652),   UINT64_C(12145819531511396912),
  UINT64_C(8330479503987882048),   UINT64_C(5204562185400447702),
  UINT64_C(17467014069438104561),   UINT64_C(2459887862960561640),
  UINT64_C(13645883249532303915),   UINT64_C(2145257189513676120),
  UINT64_C(12288317702830305186),   UINT64_C(11866520403862760907),
  UINT64_C(7792839213218322232),   UINT64_C(11425405044007050251),
  UINT64_C(15352110335329841600),   UINT64_C(7772072881386500362),
  UINT64_C(17940716732881301119),   UINT64_C(10691146989779188755),
  UINT64_C(15851718016089073580),   UINT64_C(6459621710218725000),
  UINT64_C(7200555640306313475),   UINT64_C(16882267431980456234),
  UINT64_C(6863695438578391136),   UINT64_C(11841127564414876410),
  UINT64_C(11975406510957736404),   UINT64_C(7432408096874969870),
  UINT64_C(18024386156094316825),   UINT64_C(14034986692346346769),
  UINT64_C(14171957799880636863),   UINT64_C(11619104019663385317),
  UINT64_C(14435382169630920191),   UINT64_C(12439044297433117469),
  UINT64_C(6392295194372741416),   UINT64_C(15556457635953395683),
  UINT64_C(18253371073549958556),   UINT64_C(16237832276778706446),
  UINT64_C(12881112568514266996),   UINT64_C(8419478730253343121),
  UINT64_C(12612163227243970963),   UINT64_C(2447260936876395817),
  UINT64_C(7716553008941264225),   UINT64_C(11956307572304916533),
  UINT64_C(13901385339848551486),   UINT64_C(14434954067454342147),
  UINT64_C(7167129172814612540),   UINT64_C(5023901189217755449),
  UINT64_C(14737886557680321707),   UINT64_C(893730086862657613),
  UINT64_C(3759552516269350472),   UINT64_C(7956551364804237745),
  UINT64_C(12252389500125315979),   UINT64_C(11104140994156901400),
  UINT64_C(17124991205917643426),   UINT64_C(12652632962052667285),
  UINT64_C(8023092350791593932),   UINT64_C(5322522034533209726),
  UINT64_C(16089023278290056030),   UINT64_C(9380016625918739101),
  UINT64_C(12590789478818905462),   UINT64_C(3375819693264613645),
  UINT64_C(4110920267367186867),   UINT64_C(46688068020201815),
  UINT64_C(16168148132587545078),   UINT64_C(16972531112737190331),
  UINT64_C(6140860327123276104),   UINT64_C(15208376292488302935),
  UINT64_C(7164835920338342855),   UINT64_C(15136573588612194504),
  UINT64_C(11223110091863101379),   UINT64_C(6252437046109096209),
  UINT64_C(13964595690059375533),   UINT64_C(14965519399915122644),
  UINT64_C(14859281465611298038),   UINT64_C(17359962886812993612),
  UINT64_C(17246843643675137782),   UINT64_C(5211021549930256928),
  UINT64_C(1070790954252039927),   UINT64_C(7596076102973580974),
  UINT64_C(16849001260849965032),   UINT64_C(14946774843846133089),
  UINT64_C(17539198014905658270),   UINT64_C(17934307479684364685),
  UINT64_C(10936501070584498892),   UINT64_C(17825741210108956834),
  UINT64_C(7785226053242598139),   UINT64_C(8928332099011713265),
  UINT64_C(1447671071537377487),   UINT64_C(4609653683041091671),
  UINT64_C(11337170638609289022),   UINT64_C(17812184980328387473),
  UINT64_C(13185813615093565979),   UINT64_C(18173998959836399384),
  UINT64_C(13676370015837452151),   UINT64_C(10211614924442880054),
  UINT64_C(7552378646796434525),   UINT64_C(14955594014182192318),
  UINT64_C(3198045683093972124),   UINT64_C(12988098290503130823),
  UINT64_C(2464156409900969142),   UINT64_C(16347081365248870886),
  UINT64_C(3767660447187506446),   UINT64_C(4022161658247033750),
  UINT64_C(3604220933102930330),   UINT64_C(398058041149873603),
  UINT64_C(2821688469973455996),   UINT64_C(3960516848631575537),
  UINT64_C(2567740511755145532),   UINT64_C(13701654773653058158),
  UINT64_C(14232538770389080641),   UINT64_C(5682590706866180810),
  UINT64_C(3231151752888702022),   UINT64_C(5295629082031209014),
  UINT64_C(2879692148797255524),   UINT64_C(15016227706697243724),
  UINT64_C(10588745051979827945),   UINT64_C(16166907853957022693),
  UINT64_C(12804437191739926531),   UINT64_C(15006615655184607929),
  UINT64_C(13620924160131802961),   UINT64_C(9195569630578230392),
  UINT64_C(5204007509477382627),   UINT64_C(16794226638288310749),
  UINT64_C(9240686763710973242),   UINT64_C(12143485207268418971),
  UINT64_C(14796853231471317340),   UINT64_C(4487250517075824963),
  UINT64_C(16694289407858089897),   UINT64_C(5053065397422049483),
  UINT64_C(14245106946025208596),   UINT64_C(7510967000817245715),
  UINT64_C(12445297119096152083),   UINT64_C(5041265042307898548),
  UINT64_C(9062943254146519212),   UINT64_C(4335692396924152656),
  UINT64_C(3983247282433326083),   UINT64_C(11606021689315208577),
  UINT64_C(5286386610970209820),   UINT64_C(689638863742738233),
  UINT64_C(7897762264164456556),   UINT64_C(14502197318436924389),
  UINT64_C(11706825584695171816),   UINT64_C(7585995019890320474),
  UINT64_C(15225119534361458555),   UINT64_C(5489130960364637142),
  UINT64_C(9111738449501833499),   UINT64_C(15999167531934151728),
  UINT64_C(16569197441509176797),   UINT64_C(16635323828545528742),
  UINT64_C(5159403962818104314),   UINT64_C(17594435532321246984),
  UINT64_C(18151618794657908420),   UINT64_C(14388831386491933215),
  UINT64_C(4585809172975926794),   UINT64_C(138992742229095705),
  UINT64_C(11779074911891412473),   UINT64_C(8686741754971575924),
  UINT64_C(2137482742729561425),   UINT64_C(809485128156518834),
  UINT64_C(15788209641415970789),   UINT64_C(7744686035773922143),
  UINT64_C(1606015171926242337),   UINT64_C(1503902321032594412),
  UINT64_C(18252116517822173217),   UINT64_C(283960855456061076),
  UINT64_C(7540317292135947632),   UINT64_C(6739401120793148802),
  UINT64_C(14472007553508358817),   UINT64_C(539037474335753584),
  UINT64_C(3571801197097970872),   UINT64_C(5399999208003517780),
  UINT64_C(10676675432625198548),   UINT64_C(12554193465152892385),
  UINT64_C(17992723414254096778),   UINT64_C(7319799381112485761),
  UINT64_C(13982130513761985523),   UINT64_C(488267674633050944),
  UINT64_C(16400116674737602271),   UINT64_C(12858142190443115624),
  UINT64_C(18004243070497748781),   UINT64_C(5552624291704865145),
  UINT64_C(8475646420114580032),   UINT64_C(325493613729080276),
  UINT64_C(12369502871572370307),   UINT64_C(7431744076703993470),
  UINT64_C(15508677401976711867),   UINT64_C(3927561348401793541),
  UINT64_C(8732591058036466816),   UINT64_C(12846308853624019104),
  UINT64_C(13231515506404563890),   UINT64_C(14325147039361245580),
  UINT64_C(2037274214168073482),   UINT64_C(18044102071503699073),
  UINT64_C(13585120464835323781),   UINT64_C(16378447951570661956),
  UINT64_C(16647719375234229707),   UINT64_C(306611573796574092),
  UINT64_C(5786344219922215839),   UINT64_C(13219008611547668196),
  UINT64_C(2230270647041380221),   UINT64_C(4486436575276116970),
  UINT64_C(7575265419323963178),   UINT64_C(3189423660959722391),
  UINT64_C(3596814344189474833),   UINT64_C(2916005414040129491),
  UINT64_C(24257526208841757),   UINT64_C(5844113939822982891),
  UINT64_C(1015014038779552488),   UINT64_C(16969704680938155113),
  UINT64_C(13713649232749614983),   UINT64_C(6034862194446271029),
  UINT64_C(14137016357635518409),   UINT64_C(15195950796817058784),
  UINT64_C(18119940451264576116),   UINT64_C(13833182597048607037),
  UINT64_C(7456592798014836915),   UINT64_C(5760638869486629919),
  UINT64_C(1758886188373599288),   UINT64_C(15866822615549489251),
  UINT64_C(7562573238832112684),   UINT64_C(14880929980716698888),
  UINT64_C(11233660138927307881),   UINT64_C(307813194229219867),
  UINT64_C(12608699295861249665),   UINT64_C(1363185983852908819),
  UINT64_C(8958791983673260466),   UINT64_C(1141207771371293462),
  UINT64_C(17183838933682636352),   UINT64_C(2011638490888639421),
  UINT64_C(15071433471503282854),   UINT64_C(9910925637233519963),
  UINT64_C(18248683359866870031),   UINT64_C(1397553460989550476),
  UINT64_C(6702030076800446605),   UINT64_C(14161331980579580356),
  UINT64_C(17954581808741244099),   UINT64_C(7091766334521781484),
  UINT64_C(14913218211700804878),   UINT64_C(6211359338942537176),
  UINT64_C(11967950482654662302),   UINT64_C(2024565780866601421),
  UINT64_C(5480820395877168946),   UINT64_C(3579201535100606343),
  UINT64_C(5521144562290738219),   UINT64_C(3695313657936886600),
  UINT64_C(2246256702215746953),   UINT64_C(6073961746231884217),
  UINT64_C(17555271637278791431),   UINT64_C(7723205989966833047),
  UINT64_C(176517084417499888),   UINT64_C(2365796427201735793),
  UINT64_C(4504288965381890051),   UINT64_C(47643043478128491),
  UINT64_C(9118797197553865204),   UINT64_C(1425105511693479713),
  UINT64_C(7764420834218695927),   UINT64_C(6116726885323904370),
  UINT64_C(4874901859655104894),   UINT64_C(1409588421820037728),
  UINT64_C(8017406497291203693),   UINT64_C(11930011418587900961),
  UINT64_C(14390914465086814550),   UINT64_C(7916857807082408768),
  UINT64_C(6111851384820633335),   UINT64_C(7106186920412243067),
  UINT64_C(2584379065875114022),   UINT64_C(5884359834792864920),
  UINT64_C(13388206560042718968),   UINT64_C(11442560824392041358),
  UINT64_C(10904789724242072422),   UINT64_C(16686140232662921936),
  UINT64_C(6190844888454834129),   UINT64_C(4347429409380144973),
  UINT64_C(6223241488058242501),   UINT64_C(9103453526484728082),
  UINT64_C(7707804007825923546),   UINT64_C(5292208684876091925),
  UINT64_C(7802110483794540745),   UINT64_C(13379379892634321754),
  UINT64_C(15140430241232214070),   UINT64_C(15440989403134940403),
  UINT64_C(4114714330193999177),   UINT64_C(2461804297579949868),
  UINT64_C(12306179858761928792),   UINT64_C(11907810562035740024),
  UINT64_C(12834840644232025553),   UINT64_C(8009029817189266506),
  UINT64_C(12053673422497954581),   UINT64_C(1546554304277472858),
  UINT64_C(5441074781346187134),   UINT64_C(8790773051508477222),
  UINT64_C(2963214624595355022),   UINT64_C(7983170777765504492),
  UINT64_C(1307650841826893047),   UINT64_C(15777774726633086779),
  UINT64_C(12439082467035189603),   UINT64_C(4146904940169677582),
  UINT64_C(16645100936023887943),   UINT64_C(2586372824667365335),
  UINT64_C(17148991651126530105),   UINT64_C(9956310483159676209),
  UINT64_C(2611797846287989400),   UINT64_C(9217404462662836647),
  UINT64_C(10993021507545984893),   UINT64_C(12100475879597810465),
  UINT64_C(8788554488081586436),   UINT64_C(2589705855587949290),
  UINT64_C(18032878206651213629),   UINT64_C(8352800156429400136),
  UINT64_C(9218742762842724771),   UINT64_C(16658696714436904990),
  UINT64_C(89774709251049342),   UINT64_C(1071422424233713594),
  UINT64_C(12779216147732827542),   UINT64_C(7478470977056953690),
  UINT64_C(16357116681958912588),   UINT64_C(10297069287760144568),
  UINT64_C(18039092239469103857),   UINT64_C(9621056812411895905),
  UINT64_C(14702200105868246272),   UINT64_C(5962782949210543668),
  UINT64_C(18371388460385465269),   UINT64_C(5241242582007773629),
  UINT64_C(3136579926340604228),   UINT64_C(11006351880578549601),
  UINT64_C(10099853651903850435),   UINT64_C(10931457955088658996),
  UINT64_C(16356277478981213260),   UINT64_C(8969848750803468139),
  UINT64_C(9863350803814493368),   UINT64_C(15400867845717354239),
  UINT64_C(5861966279183880808),   UINT64_C(7395511975981787659),
  UINT64_C(17629885806652349806),   UINT64_C(14105661739505076647),
  UINT64_C(12351002901967994747),   UINT64_C(12992977122630088551),
  UINT64_C(5053285344753648946),   UINT64_C(6585881038619881146),
  UINT64_C(7258452538739396447),   UINT64_C(3368124435541232606),
  UINT64_C(12800934263204065302),   UINT64_C(13189369078187277904),
  UINT64_C(10341222241363280419),   UINT64_C(18366171444843928541),
  UINT64_C(6422354886343839112),   UINT64_C(7962220404974545492),
  UINT64_C(6410786353807395731),   UINT64_C(15776841478602646065),
  UINT64_C(14061394792700804701),   UINT64_C(11834143358355944217),
  UINT64_C(5295821322451261099),   UINT64_C(16062348691553865401),
  UINT64_C(87718460143702684),   UINT64_C(14090686368291250714),
  UINT64_C(11544158699551989958),   UINT64_C(11744492279153011671),
  UINT64_C(12858857895500048020),   UINT64_C(4733475492480520198),
  UINT64_C(5191485679210005285),   UINT64_C(16132554869024929483),
  UINT64_C(10809930128445065279),   UINT64_C(1032238803268604172),
  UINT64_C(11187357252326006593),   UINT64_C(4235812276656159343),
  UINT64_C(6798783462424771859),   UINT64_C(14658540280745810536),
  UINT64_C(3152350270572274750),   UINT64_C(11043599759381496636),
  UINT64_C(12690651402650501734),   UINT64_C(18134524103795014714),
  UINT64_C(3237704370103789332),   UINT64_C(5589582932138701640),
  UINT64_C(9656900644474933567),   UINT64_C(2522887379467330952),
  UINT64_C(12422757486273093094),   UINT64_C(17726394252148527506),
  UINT64_C(1818869200421697624),   UINT64_C(6472384404539906922),
  UINT64_C(13598974651060519768),   UINT64_C(3386351029950046422),
  UINT64_C(4376857114576099845),   UINT64_C(414579466198333740),
  UINT64_C(18235148338291029027),   UINT64_C(1451958661176970658),
  UINT64_C(3803448742819167313),   UINT64_C(2469310400043047398),
  UINT64_C(7681245892725548598),   UINT64_C(16476198912289334733),
  UINT64_C(13756009430458168237),   UINT64_C(3198198256554718771),
  UINT64_C(1061909824053219477),   UINT64_C(17164562119102347672),
  UINT64_C(15366187631966549106),   UINT64_C(5945304482214595318),
  UINT64_C(18033476297122919557),   UINT64_C(15649456493791944278),
  UINT64_C(1055415728891782374),   UINT64_C(1553254640620174945),
  UINT64_C(375454001490430047),   UINT64_C(116021705038225751),
  UINT64_C(10118295411777000088),   UINT64_C(14228375588395086815),
  UINT64_C(11821021997705406003),   UINT64_C(13133546651381504438),
  UINT64_C(17195011742955518230),   UINT64_C(8607985575601534525),
  UINT64_C(17544508048296434106),   UINT64_C(9479449167083731413),
  UINT64_C(6360909909385639585),   UINT64_C(4863347275810988212),
  UINT64_C(1231595686381619464),   UINT64_C(13936941683033721179),
  UINT64_C(2414992527386841912),   UINT64_C(6713796895209966549),
  UINT64_C(10606821377866206429),   UINT64_C(6754453406834504850),
  UINT64_C(4046524808480287301),   UINT64_C(3708948874842613001),
  UINT64_C(1686143165966446581),   UINT64_C(6298728691832063740),
  UINT64_C(7485409385838898297),   UINT64_C(15353631811680421133),
  UINT64_C(7618430282112885826),   UINT64_C(14449689799732940869),
  UINT64_C(11324972922398760274),   UINT64_C(12880081768903989648),
  UINT64_C(11859754501884849523),   UINT64_C(7516821986147403302),
  UINT64_C(1538754150310977730),   UINT64_C(11355088660711939110),
  UINT64_C(2419544926697146319),   UINT64_C(4903098368463678658),
  UINT64_C(2722541595598769604),   UINT64_C(10541283872490881424),
  UINT64_C(17298297965661080570),   UINT64_C(129585513977889333),
  UINT64_C(4235947676241510806),   UINT64_C(12312553155090251423),
  UINT64_C(5271210264444184240),   UINT64_C(15409415727605571185),
  UINT64_C(4695121569998761524),   UINT64_C(12428230691840231710),
  UINT64_C(303013473788978750),   UINT64_C(16415556017702584190),
  UINT64_C(15502347636813579724),   UINT64_C(18231865866735824358),
  UINT64_C(1602018833113681963),   UINT64_C(7527875066030921921),
  UINT64_C(2549460448283555548),   UINT64_C(12757507385846405016),
  UINT64_C(3512169680031559044),   UINT64_C(5751606760412709058),
  UINT64_C(2235240479487919246),   UINT64_C(6307430277089238400),
  UINT64_C(6036807329300467250),   UINT64_C(10253471000557293050),
  UINT64_C(14644278323008099021),   UINT64_C(14516717846074855860),
  UINT64_C(4662745060094373676),   UINT64_C(13323448775280277753),
  UINT64_C(4521097542254574931),   UINT64_C(521941141163927223),
  UINT64_C(13095271776275618271),   UINT64_C(850760136517895273),
  UINT64_C(8929860315650758887),   UINT64_C(11427483468667782738),
  UINT64_C(6393998958556780789),   UINT64_C(11669670168548910269),
  UINT64_C(1521641197114317931),   UINT64_C(6392140950976645596),
  UINT64_C(11750931645739283312),   UINT64_C(16769883601906560294),
  UINT64_C(13741542984162820490),   UINT64_C(4923079410717427497),
  UINT64_C(16070632299626297490),   UINT64_C(6926383791459766435),
  UINT64_C(14596222141531841613),   UINT64_C(5257138256847953645),
  UINT64_C(13560289167369777065),   UINT64_C(867440828475408701),
  UINT64_C(4788933891263680117),   UINT64_C(2202422272018150524),
  UINT64_C(15827734766632614826),   UINT64_C(10196715047512484494),
  UINT64_C(4959155175848327100),   UINT64_C(653441871919106320),
  UINT64_C(10096061002345743560),   UINT64_C(564389228380678150),
  UINT64_C(6052556561820333530),   UINT64_C(5244551361874591364),
  UINT64_C(1819579508985150628),   UINT64_C(15309945815752183786),
  UINT64_C(18028299718497897947),   UINT64_C(5921824281135453978),
  UINT64_C(5506077731490815732),   UINT64_C(17866909422768789687),
  UINT64_C(11395065681835658572),   UINT64_C(1778073260793564090),
  UINT64_C(18004131577771925186),   UINT64_C(12082859228407356641),
  UINT64_C(17418780678228911304),   UINT64_C(7780053423005398218),
  UINT64_C(18010949543044500850),   UINT64_C(2348456407630443224),
  UINT64_C(7953847174126315731),   UINT64_C(5183387829404144842),
  UINT64_C(14025380733209036158),   UINT64_C(17325922714754431439),
  UINT64_C(14278858010179474872),   UINT64_C(4249501607079636235),
  UINT64_C(4387537416721648582),   UINT64_C(15603272676963607032),
  UINT64_C(8729553790111406363),   UINT64_C(7724885419277664496),
  UINT64_C(9971962276594819610),   UINT64_C(463862084104102172),
  UINT64_C(16984401976643137345),   UINT64_C(13509611697827305430),
  UINT64_C(11180097484676791172),   UINT64_C(10150602737574035393),
  UINT64_C(14596648332775544260),   UINT64_C(2751606282418979471),
  UINT64_C(4151749829213700308),   UINT64_C(292399896920782853),
  UINT64_C(14317667307657324529),   UINT64_C(8665503236806684914),
  UINT64_C(2860691985242898416),   UINT64_C(1648074736963736057),
  UINT64_C(9044170391906381393),   UINT64_C(4624033877860752694),
  UINT64_C(1909761066543510029),   UINT64_C(1740898956921038437),
  UINT64_C(15726813134174963611),   UINT64_C(7866419006747437513),
  UINT64_C(9863190743353807010),   UINT64_C(3968447343223823107),
  UINT64_C(14570291564812203666),   UINT64_C(4694264544033125033),
  UINT64_C(3230977570099017207),   UINT64_C(11495736567045589015),
  UINT64_C(16913282008478218864),   UINT64_C(3085006417370555362),
  UINT64_C(11401026382604361778),   UINT64_C(18221126294667033532),
  UINT64_C(12324176288661135012),   UINT64_C(10726442883975385963),
  UINT64_C(211968598696742174),   UINT64_C(11193584029279932152),
  UINT64_C(9710043822475652502),   UINT64_C(91293206385335856),
  UINT64_C(3687154085397986895),   UINT64_C(850384441751796811),
  UINT64_C(12386560553884106514),   UINT64_C(4663063396396820044),
  UINT64_C(2138125602357378383),   UINT64_C(1010118859486106689),
  UINT64_C(14456434482558320089),   UINT64_C(10329435138730633476),
  UINT64_C(12437972165542005347),   UINT64_C(15579261534402176846),
  UINT64_C(18057965550412396116),   UINT64_C(8759927619376275178),
  UINT64_C(10297656292568935540),   UINT64_C(16436669194579233108),
  UINT64_C(17646459224674936559),   UINT64_C(10925712940565499703),
  UINT64_C(17177373399645619581),   UINT64_C(13507754038481990379),
  UINT64_C(8519771240597759408),   UINT64_C(18194093014267700236),
  UINT64_C(4529975942539163585),   UINT64_C(3924070829227736612),
  UINT64_C(16716684943119243253),   UINT64_C(6808931104580874597),
  UINT64_C(4785400446035125882),   UINT64_C(11602315708844395948),
  UINT64_C(12734880322741426648),   UINT64_C(9023320197184505995),
  UINT64_C(6701908423061684509),   UINT64_C(14732285494460505366),
  UINT64_C(12966572793843963462),   UINT64_C(10291604753040698701),
  UINT64_C(633329646766840387),   UINT64_C(4389597715627848940),
  UINT64_C(7896425117206738513),   UINT64_C(13654197593471396925),
  UINT64_C(14456385958434009524),   UINT64_C(9659218551013890662),
  UINT64_C(17062701812601114288),   UINT64_C(214407062479985752),
  UINT64_C(12299977696952937544),   UINT64_C(6143720580862228499),
  UINT64_C(16156944763198832040),   UINT64_C(2177426381979685963),
  UINT64_C(15719874560233639928),   UINT64_C(2146135468107534276),
  UINT64_C(13593906813628642236),   UINT64_C(10085414743718940193),
  UINT64_C(14572675222192733284),   UINT64_C(5382587588377768073),
  UINT64_C(8906019338025364217),   UINT64_C(17506335582227293606),
  UINT64_C(13271324848629211908),   UINT64_C(15517741080802321621),
  UINT64_C(2132785617109790891),   UINT64_C(16070292980538694386),
  UINT64_C(11855174592939465044),   UINT64_C(18302346971531659886),
  UINT64_C(2594222795214073990),   UINT64_C(17586009510340455456),
  UINT64_C(3906510240649001099),   UINT64_C(3068979335387887025),
  UINT64_C(5529102289353935739),   UINT64_C(10286880006764102782),
  UINT64_C(3980855158198162996),   UINT64_C(17872953262404102464),
  UINT64_C(3909821340223393266),   UINT64_C(325557903150864214),
  UINT64_C(14278144818707200232),   UINT64_C(10037428954609313307),
  UINT64_C(303744995408260980),   UINT64_C(6268674927787334411),
  UINT64_C(8111732637438584414),   UINT64_C(2301293518345277463),
  UINT64_C(7773942902527323424),   UINT64_C(3903834325061042776),
  UINT64_C(16422174814459381419),   UINT64_C(9529144305121817526),
  UINT64_C(4401980019999949489),   UINT64_C(15330233581732347354),
  UINT64_C(16967171977767949779),   UINT64_C(1794336395024772518),
  UINT64_C(14823473263714655924),   UINT64_C(3320980428628103770),
  UINT64_C(1911476137496329996),   UINT64_C(16562945973812939327),
  UINT64_C(12551292925896904712),   UINT64_C(722409954860120748),
  UINT64_C(12258860152908275722),   UINT64_C(7386324982984779132),
  UINT64_C(8441733208298407842),   UINT64_C(7163422396825777528),
  UINT64_C(3701512905779520123),   UINT64_C(13717435237873226640),
  UINT64_C(11814595965463357005),   UINT64_C(10925873314300042763),
  UINT64_C(11198201957019508849),   UINT64_C(13397427360967818496),
  UINT64_C(13581766365086076854),   UINT64_C(3790561976380541148),
  UINT64_C(3739612523130938384),   UINT64_C(17457835714256719670),
  UINT64_C(3298954462921610393),   UINT64_C(7389256109688646586),
  UINT64_C(3945106715214069795),   UINT64_C(13704746855508263811),
  UINT64_C(8736607301367825187),   UINT64_C(9758342138819160496),
  UINT64_C(464172294698197011),   UINT64_C(15483893947173110312),
  UINT64_C(10533166507414792681),   UINT64_C(10544525958850659598),
  UINT64_C(2791503974459093195),   UINT64_C(17885286123526752497),
  UINT64_C(2996229366554404818),   UINT64_C(15084797215971631876),
  UINT64_C(4780905102142059550),   UINT64_C(6941458168841063296),
  UINT64_C(13544137832007360775),   UINT64_C(13878635060062445162),
  UINT64_C(9327562551372379142),   UINT64_C(17093250244991209403),
  UINT64_C(4047834851673484606),   UINT64_C(16524487321787007855),
  UINT64_C(9024858989857992259),   UINT64_C(11998025148614391041),
  UINT64_C(9057391200380036024),   UINT64_C(11397664630829567024),
  UINT64_C(10354212332581780165),   UINT64_C(7535801882234832488),
  UINT64_C(5453089757527156778),   UINT64_C(8713281769951141269),
  UINT64_C(15946409906938794452),   UINT64_C(612056921539065759),
  UINT64_C(2240610778256190327),   UINT64_C(2374195112648191382),
  UINT64_C(12902118972717424417),   UINT64_C(12078966075284059582),
  UINT64_C(5819556835495402834),   UINT64_C(13062040405065975664),
  UINT64_C(17607085313535014404),   UINT64_C(11436801068281292342),
  UINT64_C(15969980642278582995),   UINT64_C(15923410872312816298),
  UINT64_C(6022996227965890193),   UINT64_C(305296249758895662),
  UINT64_C(10795942477165295024),   UINT64_C(7266550737358296736),
  UINT64_C(14932639534741438427),   UINT64_C(12962829561866679598),
  UINT64_C(14782479123380948342),   UINT64_C(17247743292565124675),
  UINT64_C(8127963735382432390),   UINT64_C(14044437694233658149),
  UINT64_C(12024612087172452486),   UINT64_C(14055345272707606330),
  UINT64_C(3435339711853260392),   UINT64_C(6798720797629599404),
  UINT64_C(2998202473030741377),   UINT64_C(8326976305818877910),
  UINT64_C(230312864662126377),   UINT64_C(968619003688582046),
  UINT64_C(15909030514419167401),   UINT64_C(9516263862018912356),
  UINT64_C(6040631892329517931),   UINT64_C(11399842635079826991),
  UINT64_C(15863534247445734340),   UINT64_C(14568539528771525581),
  UINT64_C(880712635730836796),   UINT64_C(5299919522625791129),
  UINT64_C(17057803711629605002),   UINT64_C(10381171716503181244),
  UINT64_C(2803753378912610166),   UINT64_C(8906251276597213078),
  UINT64_C(2262953717249352179),   UINT64_C(6588704996346938266),
  UINT64_C(2791516499564308218),   UINT64_C(17438062348127088873),
  UINT64_C(10475302316848210556),   UINT64_C(7169297038043834639),
  UINT64_C(2270761833570927948),   UINT64_C(8010755598675423261),
  UINT64_C(3655406505963580317),   UINT64_C(8712220089774159694),
  UINT64_C(13644694541414334572),   UINT64_C(13780747354302196012),
  UINT64_C(7474210497250928152),   UINT64_C(2698761323481504793),
  UINT64_C(9702001193168755056),   UINT64_C(15368683291631010735),
  UINT64_C(7418421648422202782),   UINT64_C(3024663471764685839),
  UINT64_C(5737900270003211395),   UINT64_C(10231818272098027430),
  UINT64_C(6209025685266355739),   UINT64_C(3886180877340350906),
  UINT64_C(4900053412585810933),   UINT64_C(17748636615421199279),
  UINT64_C(17980662182309997735),   UINT64_C(6657050951362174094),
  UINT64_C(12608521438659030786),   UINT64_C(10181868746924850747),
  UINT64_C(589084966076356750),   UINT64_C(5005222393854362613),
  UINT64_C(8983470103590150892),   UINT64_C(13615091500964682574),
  UINT64_C(7750245659780954794),   UINT64_C(7970388376098402419),
  UINT64_C(6444909090713342302),   UINT64_C(68778321262414836),
  UINT64_C(14260746839916839356),   UINT64_C(18220452896675255287),
  UINT64_C(7443456885181315183),   UINT64_C(4025565726126157286),
  UINT64_C(17743611470518516374),   UINT64_C(16492441913799181142),
  UINT64_C(11674903911885504314),   UINT64_C(10456905222374364723),
  UINT64_C(8980311577502392098),   UINT64_C(5267948474188444106),
  UINT64_C(12610490700929088343),   UINT64_C(6455819516498676506),
  UINT64_C(6126517321433156732),   UINT64_C(2955763722356484424),
  UINT64_C(9261942264771718742),   UINT64_C(4249332209289616381),
  UINT64_C(12805008453827514855),   UINT64_C(15080825587566193454),
  UINT64_C(767568027952427792),   UINT64_C(7688188914419339672),
  UINT64_C(16813475787441612843),   UINT64_C(3182567480407826359),
  UINT64_C(10670436479793947579),   UINT64_C(13141086710447564635),
  UINT64_C(16416904306982272759),   UINT64_C(8842656934826241659),
  UINT64_C(9816900923787873856),   UINT64_C(12536080484870935994),
  UINT64_C(9366478429785748968),   UINT64_C(9696017944913212082),
  UINT64_C(7772002650368202908),   UINT64_C(17719520905986012884),
  UINT64_C(18358982439040297410),   UINT64_C(7961246790426255875),
  UINT64_C(4385940688785481622),   UINT64_C(15991532718622420174),
  UINT64_C(11262854462598670943),   UINT64_C(5126485002032826287),
  UINT64_C(10729019305662394175),   UINT64_C(13389109359200972183),
  UINT64_C(7242605147341158833),   UINT64_C(13876204964630346745),
  UINT64_C(5633019405178691550),   UINT64_C(6412621389941355238),
  UINT64_C(7173139362296277136),   UINT64_C(914647369607550723),
  UINT64_C(10603453451728077477),   UINT64_C(2684948503229744976),
  UINT64_C(16521191538135303948),   UINT64_C(5484196398299504684),
  UINT64_C(18384737410013875035),   UINT64_C(10980265260027497975),
  UINT64_C(2190194324972825455),   UINT64_C(82813185024652641),
  UINT64_C(15380588163621056451),   UINT64_C(5763877399381167786),
  UINT64_C(1359424940941155311),   UINT64_C(3958790690642093170),
  UINT64_C(17862636076528840350),   UINT64_C(10926992015712679402),
  UINT64_C(12209704514657062529),   UINT64_C(5057788321575799084),
  UINT64_C(17905658133285153847),   UINT64_C(15888508861452184483),
  UINT64_C(12448545367496553298),   UINT64_C(9709073639218563378),
  UINT64_C(498388471664973169),   UINT64_C(18170031936861431388),
  UINT64_C(13418358052645454353),   UINT64_C(6196623770446759848),
  UINT64_C(2757310379150741047),   UINT64_C(17833296157520250896),
  UINT64_C(2762542843559930744),   UINT64_C(8283469230189643306),
  UINT64_C(2143980316644121792),   UINT64_C(3841220327949987139),
  UINT64_C(2395750719559240105),   UINT64_C(1861618685012104003),
  UINT64_C(3031848668334317556),   UINT64_C(6221862448997652316),
  UINT64_C(9370071782882191120),   UINT64_C(1165431031759391569),
  UINT64_C(5889325378104901603),   UINT64_C(2429154204945121302),
  UINT64_C(17413322870618213954),   UINT64_C(1509100675794468481),
  UINT64_C(9659611733456308491),   UINT64_C(1043872863057388379),
  UINT64_C(17052128229546337236),   UINT64_C(3368986446958298246),
  UINT64_C(10068355177970215958),   UINT64_C(2240026865425489822),
  UINT64_C(694587918031831126),   UINT64_C(16478349149869674215),
  UINT64_C(6619437754032502176),   UINT64_C(16766553813724391505),
  UINT64_C(6278272502785103369),   UINT64_C(4652708377545298958),
  UINT64_C(9226414743925541793),   UINT64_C(8955389149813039349),
  UINT64_C(4300319916744690384),   UINT64_C(13534231385460383012),
  UINT64_C(15865378725295059787),   UINT64_C(7091420910820803455),
  UINT64_C(13364942374739305077),   UINT64_C(10559971014186895564),
  UINT64_C(6192227914365023297),   UINT64_C(16477840528935765579),
  UINT64_C(2742241125614495069),   UINT64_C(3701524414687312438),
  UINT64_C(15938144385581483456),   UINT64_C(222629393285284979),
  UINT64_C(9467651950243469014),   UINT64_C(6839761614818813008),
  UINT64_C(10565086636027102715),   UINT64_C(6035214455853487791),
  UINT64_C(17306099745026871008),   UINT64_C(7258805154292868289),
  UINT64_C(2070551770344849555),   UINT64_C(12295820448494147849),
  UINT64_C(10875207342659980559),   UINT64_C(16594810177764806318),
  UINT64_C(17043262680762705045),   UINT64_C(17120298674878804952),
  UINT64_C(13729532329092123874),   UINT64_C(4275882999109923800),
  UINT64_C(3109322284280852436),   UINT64_C(1588191355441041365),
  UINT64_C(10628072698636252873),   UINT64_C(15076048948314433591),
  UINT64_C(9495663056711281328),   UINT64_C(15396545589710569427),
  UINT64_C(6950367100980498236),   UINT64_C(14522746609429873067),
  UINT64_C(5528342738879000321),   UINT64_C(13384027692758840704),
  UINT64_C(10471332509011102804),   UINT64_C(3009608707477730193),
  UINT64_C(17286931690983097354),   UINT64_C(6633040190340818291),
  UINT64_C(6463348596632304168),   UINT64_C(11429524204267457389),
  UINT64_C(12593882083094955912),   UINT64_C(9413359312464252640),
  UINT64_C(14217893744134194895),   UINT64_C(14733089729506369413),
  UINT64_C(8378001374735720633),   UINT64_C(11363089298002412268),
  UINT64_C(15964681259942327177),   UINT64_C(3694423167595679719),
  UINT64_C(13677093463307643820),   UINT64_C(831868958343556378),
  UINT64_C(8471744129605784873),   UINT64_C(10235240474625822604),
  UINT64_C(979743928611339992),   UINT64_C(75276750366663617),
  UINT64_C(1476017208037126307),   UINT64_C(9644292393493661624),
  UINT64_C(10426437473936308517),   UINT64_C(1723337002785831308),
  UINT64_C(13740167108167584872),   UINT64_C(393149655481964436),
  UINT64_C(8752717795732997620),   UINT64_C(2382504645214505156),
  UINT64_C(1884522192397978498),   UINT64_C(2469340187297433654),
  UINT64_C(16859788589512853677),   UINT64_C(18155413864450359645),
  UINT64_C(13239580371026242282),   UINT64_C(18368437897794730660),
  UINT64_C(230195289463652797),   UINT64_C(820318903203358475),
  UINT64_C(15671630549398898222),   UINT64_C(15725316569034884454),
  UINT64_C(12870452096526960395),   UINT64_C(7289063759975774970),
  UINT64_C(1645599960370631753),   UINT64_C(11679939101471067028),
  UINT64_C(7961461345884496947),   UINT64_C(7049730779898726534),
  UINT64_C(12646328928047524805),   UINT64_C(14945147448450404645),
  UINT64_C(8046745880633311376),   UINT64_C(6295859540574082899),
  UINT64_C(11443330057366476648),   UINT64_C(17649125405474483402),
  UINT64_C(2340842482630492396),   UINT64_C(9522508376026302119),
  UINT64_C(4927427118510637363),   UINT64_C(14938327215052414041),
  UINT64_C(6461013013413303941),   UINT64_C(12986721025074277634),
  UINT64_C(8050519105246797747),   UINT64_C(4643635112772892589),
  UINT64_C(11149474483097740062),   UINT64_C(13804367857741674210),
  UINT64_C(15301856269069805260),   UINT64_C(2311685104155322637),
  UINT64_C(5927802223574680556),   UINT64_C(1309843149488042298),
  UINT64_C(13927117740413071213),   UINT64_C(8333409564821936361),
  UINT64_C(3251617706158072848),   UINT64_C(5043059024801323671),
  UINT64_C(8236439833103963183),   UINT64_C(4871998635338202775),
  UINT64_C(16332891756013040062),   UINT64_C(9685927372109413440),
  UINT64_C(7278834989452373604),   UINT64_C(8219055289424326633),
  UINT64_C(7870805873591236876),   UINT64_C(3250823002386579198),
  UINT64_C(404071662899019501),   UINT64_C(7434021400040798677),
  UINT64_C(13212361145195792202),   UINT64_C(16343865609845337160),
  UINT64_C(12025138533188837408),   UINT64_C(741994347290106565),
  UINT64_C(8065144139221580816),   UINT64_C(8454894945349644523),
  UINT64_C(16194673706354509312),   UINT64_C(12235185373752756680),
  UINT64_C(5920994517046365037),   UINT64_C(8010128174750791168),
  UINT64_C(8805991839491009885),   UINT64_C(2704419954928229146),
  UINT64_C(13328867484009832988),   UINT64_C(1912695718705916270),
  UINT64_C(6753260862773929322),   UINT64_C(2708711003887103356),
  UINT64_C(8332960792834166412),   UINT64_C(1420917985752790739),
  UINT64_C(5707582284537357438),   UINT64_C(6314761958014154816),
  UINT64_C(5557196482193613891),   UINT64_C(15737517047642345030),
  UINT64_C(7663887979108671138),   UINT64_C(17076155267454348450),
  UINT64_C(4694909828396591046),   UINT64_C(15621749944055352348),
  UINT64_C(10353187009793145878),   UINT64_C(17222360918596507516),
  UINT64_C(9500049856547560162),   UINT64_C(7180282250157916131),
  UINT64_C(14230996718025757462),   UINT64_C(14801793070463548498),
  UINT64_C(13291233481598098119),   UINT64_C(17991249728755949893),
  UINT64_C(8627333433446916180),   UINT64_C(8948590381895848644),
  UINT64_C(12263068869787756083),   UINT64_C(11348708928187431159),
  UINT64_C(13181021796913376953),   UINT64_C(10185495370514630728),
  UINT64_C(14850352161457848951),   UINT64_C(18141718493845744732),
  UINT64_C(2789320225252780026),   UINT64_C(15319355752284340466),
  UINT64_C(13183453584330799570),   UINT64_C(11663473955680460019),
  UINT64_C(124299895926457344),   UINT64_C(3231557030545889784),
  UINT64_C(17934317366444188880),   UINT64_C(8552514179983175586),
  UINT64_C(6851505654808331101),   UINT64_C(5121074596153237593),
  UINT64_C(15274476101593605811),   UINT64_C(16192592255254347561),
  UINT64_C(11654020505253426850),   UINT64_C(14517658488809244272),
  UINT64_C(231945985411249135),   UINT64_C(17586683482990613184),
  UINT64_C(13322948410424744283),   UINT64_C(7175276434664003109),
  UINT64_C(8369557472905813028),   UINT64_C(11154517426952759426),
  UINT64_C(3034747816725809755),   UINT64_C(17879809565946518732),
  UINT64_C(5041898684887777758),   UINT64_C(16553837503261936036),
  UINT64_C(8968769445963223231),   UINT64_C(3915812408498918998),
  UINT64_C(10220314776351255816),   UINT64_C(7757333160909213204),
  UINT64_C(16047169940387160320),   UINT64_C(7775813695922874168),
  UINT64_C(2268287348015731962),   UINT64_C(9044649137966175362),
  UINT64_C(1636579099620722434),   UINT64_C(5922723397645561694),
  UINT64_C(14966081794098330639),   UINT64_C(15456117396424654629),
  UINT64_C(1584377567610655241),   UINT64_C(12132263129655701815),
  UINT64_C(713430694015538363),   UINT64_C(14699707999133223613),
  UINT64_C(11746202986165565506),   UINT64_C(10440289653033256448),
  UINT64_C(5814958514484774007),   UINT64_C(6517631049527433893),
  UINT64_C(3008554307835977331),   UINT64_C(12162220480068490532),
  UINT64_C(3053640638411339098),   UINT64_C(15053059014753659671),
  UINT64_C(9608745918762872523),   UINT64_C(2073200164285171606),
  UINT64_C(16350140682416117335),   UINT64_C(16407755588896435044),
  UINT64_C(12995558689481181277),   UINT64_C(6037686789564830512),
  UINT64_C(5831791128114022585),   UINT64_C(11189441257956367184),
  UINT64_C(3513569889113586536),   UINT64_C(16991955692461320852),
  UINT64_C(8673503701621300355),   UINT64_C(9569205487988420860),
  UINT64_C(14452916217630782795),   UINT64_C(12018483755896305520),
  UINT64_C(2144958306724520151),   UINT64_C(11965129207886017786),
  UINT64_C(4898471340168982517),   UINT64_C(10705483812212219519),
  UINT64_C(15021807066992082624),   UINT64_C(868725495559723618),
  UINT64_C(12292113068470696895),   UINT64_C(6473347865907536519),
  UINT64_C(16035677628103033308),   UINT64_C(16947241435387968595),
  UINT64_C(3203073682019422594),   UINT64_C(6751703550975033358),
  UINT64_C(14697444150021956630),   UINT64_C(5281433398196614775),
  UINT64_C(8170821839068056613),   UINT64_C(9648626792545324728),
  UINT64_C(5608761362535537476),   UINT64_C(9748410558189084741),
  UINT64_C(3411182546260546984),   UINT64_C(5825411144096977466),
  UINT64_C(10111492228246498644),   UINT64_C(9129264267727756292),
  UINT64_C(13293725094620817393),   UINT64_C(3645461852817526255),
  UINT64_C(9636736428383685589),   UINT64_C(5633707601406722448),
  UINT64_C(16305848918425666920),   UINT64_C(5843185233411664084),
  UINT64_C(7614063045200559609),   UINT64_C(12343820189262551254),
  UINT64_C(14971559557185880666),   UINT64_C(12244435788272869401),
  UINT64_C(16927685704027707986),   UINT64_C(9141210356198958802),
  UINT64_C(3057362023062282238),   UINT64_C(15907134343733030889),
  UINT64_C(17369349528809267917),   UINT64_C(8863872826269671814),
  UINT64_C(10593909183831544145),   UINT64_C(6214416805975172329),
  UINT64_C(6555236914324845613),   UINT64_C(3576666549964790897),
  UINT64_C(11715071062729525444),   UINT64_C(12697173841752140586),
  UINT64_C(16566844000752851562),   UINT64_C(5773228450660527442),
  UINT64_C(13331356792119249916),   UINT64_C(7865031633204442339),
  UINT64_C(7760353592451521573),   UINT64_C(13475774479785706638),
  UINT64_C(7444612870608351199),   UINT64_C(5349899074798494129),
  UINT64_C(17924442663199556354),   UINT64_C(11848297800140478974),
  UINT64_C(4768047921187854002),   UINT64_C(624613037629152576),
  UINT64_C(5548170906537433518),   UINT64_C(10877001206983609958),
  UINT64_C(4142856532500448686),   UINT64_C(5628098331523618242),
  UINT64_C(10488387389548381879),   UINT64_C(12067418671990726784),
  UINT64_C(5833257746165709132),   UINT64_C(4968459697346964459),
  UINT64_C(13666803587748054360),   UINT64_C(12941168419560988992),
  UINT64_C(4099227934510187768),   UINT64_C(12444539031437686129),
  UINT64_C(1147302946631344172),   UINT64_C(11205084967633528793),
  UINT64_C(10172102468414093790),   UINT64_C(5272110816342047626),
  UINT64_C(38414424534401535),   UINT64_C(5035056074216860481),
  UINT64_C(17640974499038559231),   UINT64_C(753782822891456685),
  UINT64_C(17233456248850642270),   UINT64_C(1322173144565769646),
  UINT64_C(11003447268090245343),   UINT64_C(4447422035514775401),
  UINT64_C(11456615512285758863),   UINT64_C(17378104689538752121),
  UINT64_C(13820577988768737919),   UINT64_C(10543134160246054721),
  UINT64_C(2787063772537012361),   UINT64_C(18428416073733259235),
  UINT64_C(18330856464410208709),   UINT64_C(9277204535997485117),
  UINT64_C(5909475182329770284),   UINT64_C(8088209208423250866),
  UINT64_C(4925212479105491615),   UINT64_C(14135611186335040495),
  UINT64_C(337582838458030097),   UINT64_C(16582889649561029996),
  UINT64_C(5366070843480513281),   UINT64_C(12734332012507634376),
  UINT64_C(4528408384425429048),   UINT64_C(5718330571450462749),
  UINT64_C(16238714019887763244),   UINT64_C(12726638231603741087),
  UINT64_C(7900440962523676249),   UINT64_C(5254941971633790143),
  UINT64_C(667313037058194329),   UINT64_C(12438842187118915302),
  UINT64_C(11288402649858167325),   UINT64_C(15461523307641838255),
  UINT64_C(9333567319918089341),   UINT64_C(8638634028053533894),
  UINT64_C(7653229388500338545),   UINT64_C(16590156109084072441),
  UINT64_C(8245026184428821767),   UINT64_C(10356266198211369385),
  UINT64_C(13042830926265092835),   UINT64_C(17866156833883904326),
  UINT64_C(8130395217982463161),   UINT64_C(13226856954502669816),
  UINT64_C(11961495915092210906),   UINT64_C(15730264583582430547),
  UINT64_C(8048082903550834126),   UINT64_C(4351941504136353199),
  UINT64_C(17716130945703151526),   UINT64_C(18328736806251384151),
  UINT64_C(9935250622277972266),   UINT64_C(8513179026113340277),
  UINT64_C(10560404766546243001),   UINT64_C(12148908860855225313),
  UINT64_C(18244358145250325981),   UINT64_C(6019512429317329556),
  UINT64_C(3061210593515653506),   UINT64_C(1930616725767619165),
  UINT64_C(14592350765715464702),   UINT64_C(15750408023952440942),
  UINT64_C(13236098610343991394),   UINT64_C(14695011291166920821),
  UINT64_C(6599411040133716463),   UINT64_C(6846754551256128007),
  UINT64_C(2423649627983569023),   UINT64_C(4096633165718686971),
  UINT64_C(11068149487723644917),   UINT64_C(6138064360285377457),
  UINT64_C(14103161508428096086),   UINT64_C(638309206669120754),
  UINT64_C(6418939263380763470),   UINT64_C(12494123381220028960),
  UINT64_C(18125092194907044651),   UINT64_C(9318786194591219327),
  UINT64_C(12328845949708810685),   UINT64_C(8214712012491485529),
  UINT64_C(8200878092226113517),   UINT64_C(12010383022319962306),
  UINT64_C(282940350601465222),   UINT64_C(8393102003746392400),
  UINT64_C(4579791094860137858),   UINT64_C(4454403920595499296),
  UINT64_C(5547783966301061776),   UINT64_C(14707758303135989394),
  UINT64_C(2921705780619880258),   UINT64_C(13681030571636437148),
  UINT64_C(12880563424926527053),   UINT64_C(3230302183934638797),
  UINT64_C(18387055846048320317),   UINT64_C(11827018118501197984),
  UINT64_C(7271191320419521869),   UINT64_C(17729748702579889104),
  UINT64_C(12948042081814728951),   UINT64_C(12246920059410811878),
  UINT64_C(4205998057808381216),   UINT64_C(16582574275194721654),
  UINT64_C(5121834101472599030),   UINT64_C(8873182625246361610),
  UINT64_C(4165883764933334834),   UINT64_C(6784800011913684697),
  UINT64_C(8953992519049529636),   UINT64_C(1370613272870087887),
  UINT64_C(15436309196627634047),   UINT64_C(12671480746735034595),
  UINT64_C(17330474550123549931),   UINT64_C(13246137781121509830),
  UINT64_C(17011848242429768917),   UINT64_C(4229038166744851828),
  UINT64_C(4298028211525977692),   UINT64_C(15525601485472836175),
  UINT64_C(12075479599624396476),   UINT64_C(2969580247156490329),
  UINT64_C(7288732510715333796),   UINT64_C(8029970398535480262),
  UINT64_C(12598195914838472324),   UINT64_C(13017523125814617884),
  UINT64_C(16855421673475743145),   UINT64_C(1773120174565613057),
  UINT64_C(8626596531236853348),   UINT64_C(5417110442749462943),
  UINT64_C(7562294411224890405),   UINT64_C(7259656998544020605),
  UINT64_C(18214827240542583787),   UINT64_C(15040719961789213176),
  UINT64_C(619879041103273293),   UINT64_C(14034418022199493942),
  UINT64_C(9917899570235162263),   UINT64_C(9998705853853462843),
  UINT64_C(13449828105932424431),   UINT64_C(6214905173543291587),
  UINT64_C(1096298764142210832),   UINT64_C(1450005777673883848),
  UINT64_C(9791307505195686639),   UINT64_C(17606721127649247232),
  UINT64_C(13130822292488901472),   UINT64_C(5403381454589914598),
  UINT64_C(14755718489120162270),   UINT64_C(11354825370383594287),
  UINT64_C(8288940248177986091),   UINT64_C(595012938750398784),
  UINT64_C(9356165664935156528),   UINT64_C(13773991966541427362),
  UINT64_C(18129974928649948372),   UINT64_C(16997151044656609865),
  UINT64_C(5440950951589142593),   UINT64_C(11819151039440225993),
  UINT64_C(13494640245722589780),   UINT64_C(72934196141138139),
  UINT64_C(4013855369980832466),   UINT64_C(16613617872295991908),
  UINT64_C(10462522608806396444),   UINT64_C(11805653965750045239),
  UINT64_C(131413209846259507),   UINT64_C(12668154005335945691),
  UINT64_C(2643671352871099302),   UINT64_C(12018573137517429341),
  UINT64_C(7128774027727056418),   UINT64_C(15802636300511588318),
  UINT64_C(5206284601294206651),   UINT64_C(5853968296400953543),
  UINT64_C(2109912988921695106),   UINT64_C(17489979352249459398),
  UINT64_C(9942237448856383077),   UINT64_C(8980278710392606892),
  UINT64_C(11794892425893736960),   UINT64_C(10715178424286719639),
  UINT64_C(17559131255472525114),   UINT64_C(5532047274779674780),
  UINT64_C(6230864789942787670),   UINT64_C(4393574604244746943),
  UINT64_C(3035079518873096127),   UINT64_C(6808947657909054836),
  UINT64_C(13239875026630932984),   UINT64_C(12790952626909500612),
  UINT64_C(1173418765153053439),   UINT64_C(15680999863844507879),
  UINT64_C(5305741312124849059),   UINT64_C(1770943937556760360),
  UINT64_C(12933176285214676227),   UINT64_C(10360687351820117650),
  UINT64_C(10322603034193658876),   UINT64_C(14157933903262478136),
  UINT64_C(3453923778267312632),   UINT64_C(13629149902482382424),
  UINT64_C(4687286216142998724),   UINT64_C(7464750313990326527),
  UINT64_C(7288457470170150137),   UINT64_C(3111138581546907380),
  UINT64_C(11572741901778446967),   UINT64_C(3433047437786393008),
  UINT64_C(13356451379513680655),   UINT64_C(13787866309052673375),
  UINT64_C(4730919914433509191),   UINT64_C(14321191430332956457),
  UINT64_C(2078672008624583088),   UINT64_C(6644815659984049986),
  UINT64_C(1666360564949120056),   UINT64_C(10820447940130771600),
  UINT64_C(276779369844926489),   UINT64_C(7899856803907608710),
  UINT64_C(16557935140716537256),   UINT64_C(14694657698897819802),
  UINT64_C(11160817251188749584),   UINT64_C(7960413535294188369),
  UINT64_C(14264580044324689367),   UINT64_C(7213937776306292701),
  UINT64_C(9991414217743487410),   UINT64_C(7759022852331822250),
  UINT64_C(2430547377210693780),   UINT64_C(1374307762391609581),
  UINT64_C(2159978584064071975),   UINT64_C(7407816562152819704),
  UINT64_C(1250821918351985669),   UINT64_C(106064055061599793),
  UINT64_C(12158650256897131473),   UINT64_C(4156116217065216614),
  UINT64_C(14290690700346704981),   UINT64_C(15913431047112571284),
  UINT64_C(14210537933348499659),   UINT64_C(4426484292181989194),
  UINT64_C(14863958975048680722),   UINT64_C(5645531736543620789),
  UINT64_C(75202302575205035),   UINT64_C(8964811152679271910),
  UINT64_C(3778400028588766785),   UINT64_C(11428571565407311233),
  UINT64_C(8201102182685505533),   UINT64_C(18041157423072274622),
  UINT64_C(9335580040187867916),   UINT64_C(15413468089904910890),
  UINT64_C(2942031636007353264),   UINT64_C(8515827361140907495),
  UINT64_C(7292343988267924582),   UINT64_C(3797469033163334182),
  UINT64_C(14783455060835897472),   UINT64_C(2906437056513326820),
  UINT64_C(7626790566745826880),   UINT64_C(12218728591504863150),
  UINT64_C(11251204786478383493),   UINT64_C(7231079242877126130),
  UINT64_C(14583864833938311197),   UINT64_C(6155556318538825858),
  UINT64_C(10931290820485116193),   UINT64_C(5881742443859809976),
  UINT64_C(4993562086145365396),   UINT64_C(16491789126089305453),
  UINT64_C(9567662450579796158),   UINT64_C(15071572390253747605),
  UINT64_C(694256840990171575),   UINT64_C(9076954579039559785),
  UINT64_C(15409069521307669155),   UINT64_C(7666474016456020899),
  UINT64_C(6536804794903811761),   UINT64_C(3268004661267697249),
  UINT64_C(17471146613080480661),   UINT64_C(1923810926184231177),
  UINT64_C(114501874079890186),   UINT64_C(17252483183761469168),
  UINT64_C(9316557606743772647),   UINT64_C(1793380726322386587),
  UINT64_C(3744207306301386439),   UINT64_C(1454124996232576221),
  UINT64_C(12740859788440672080),   UINT64_C(13753041920684473727),
  UINT64_C(9487906534250319172),   UINT64_C(10323809611166827663),
  UINT64_C(6171003322850017500),   UINT64_C(7344710831242386196),
  UINT64_C(10902406871196097745),   UINT64_C(5055442811131045212),
  UINT64_C(8187823751830630760),   UINT64_C(1071094028117622966),
  UINT64_C(5364695007777242491),   UINT64_C(12717671881115989571),
  UINT64_C(3879730982925749346),   UINT64_C(8676733955925132901),
  UINT64_C(16801890556041593896),   UINT64_C(7556720034055061735),
  UINT64_C(8207669326293519545),   UINT64_C(7718407596116531434),
  UINT64_C(17533860593719751673),   UINT64_C(1794731137803695314),
  UINT64_C(7885730948257435443),   UINT64_C(17087506498763668278),
  UINT64_C(13401176885284890282),   UINT64_C(6614614745840672497),
  UINT64_C(1461266059663660455),   UINT64_C(1460526072445260163),
  UINT64_C(8425388309616732192),   UINT64_C(15595395016904321775),
  UINT64_C(15205720959034860681),   UINT64_C(10354275371297927498),
  UINT64_C(12477346569753381276),   UINT64_C(18112253756117069413),
  UINT64_C(8775172409941784645),   UINT64_C(14037945967691716249),
  UINT64_C(13518308571380376499),   UINT64_C(9783422290083479634),
  UINT64_C(7571524187009739644),   UINT64_C(6029634466978445110),
  UINT64_C(18106026384577323382),   UINT64_C(6166717939821764905),
  UINT64_C(10896385970869821356),   UINT64_C(10590149013518818594),
  UINT64_C(7049125947288668425),   UINT64_C(6993681563671569865),
  UINT64_C(6377624940191821226),   UINT64_C(4237080832823111251),
  UINT64_C(2603949972760543301),   UINT64_C(2233710229097852537),
  UINT64_C(4602033397641725079),   UINT64_C(4194481819522450604),
  UINT64_C(15377050457668522086),   UINT64_C(7898635912499770139),
  UINT64_C(6678381394103551738),   UINT64_C(11514658045256296271),
  UINT64_C(5288809250077558340),   UINT64_C(7149379938954260101),
  UINT64_C(3007884969358511730),   UINT64_C(5263743955067553570),
  UINT64_C(7870805043218934711),   UINT64_C(12240738532596342406),
  UINT64_C(13883065000709302364),   UINT64_C(3878920256866325596),
  UINT64_C(12653131983483862405),   UINT64_C(3999609382110130769),
  UINT64_C(14639944779619192754),   UINT64_C(12560694027124139128),
  UINT64_C(14350191657805993983),   UINT64_C(8721930308218204348),
  UINT64_C(11388853455385233728),   UINT64_C(7863450291263978622),
  UINT64_C(16054220504755793289),   UINT64_C(1056137511462200685),
  UINT64_C(9384113807148463175),   UINT64_C(16905206770048151391),
  UINT64_C(5447084397939796528),   UINT64_C(8532992423108439484),
  UINT64_C(17133707513302597281),   UINT64_C(8061804399017667181),
  UINT64_C(15329655567415247762),   UINT64_C(7232572554413338661),
  UINT64_C(3786785177800237563),   UINT64_C(2926940488646446181),
  UINT64_C(10873529438845819998),   UINT64_C(18283480542105366045),
  UINT64_C(9441840604803913448),   UINT64_C(17806440159502980697),
  UINT64_C(2749655689095863548),   UINT64_C(2542189885648038609),
  UINT64_C(15486816837354811738),   UINT64_C(6987367080382655918),
  UINT64_C(7338479508501001200),   UINT64_C(13998049423968131308),
  UINT64_C(4925668339727060347),   UINT64_C(8502042968529670991),
  UINT64_C(14868204574759479532),   UINT64_C(4787545614738961581),
  UINT64_C(4276725587290878106),   UINT64_C(3885982403732570793),
  UINT64_C(2051749898406462074),   UINT64_C(5197727453520809530),
  UINT64_C(13360924754834145048),   UINT64_C(16740913542485019094),
  UINT64_C(3739253177721327423),   UINT64_C(9277941592015699207),
  UINT64_C(3266226014517181959),   UINT64_C(4990826243413077386),
  UINT64_C(5003015195740180658),   UINT64_C(6662675213360656876),
  UINT64_C(6992097556283267992),   UINT64_C(6733759643572213167),
  UINT64_C(17013932669792120120),   UINT64_C(14962760567397993014),
  UINT64_C(16274542699328613429),   UINT64_C(17557223399504256012),
  UINT64_C(12787233208679477612),   UINT64_C(7025597370376695256),
  UINT64_C(3342551971803201),   UINT64_C(7857053414487861456),
  UINT64_C(11304874764872441199),   UINT64_C(5313652589976083866),
  UINT64_C(4143525072097872154),   UINT64_C(3836160395146217763),
  UINT64_C(16726487850208127147),   UINT64_C(11260456095442034764),
  UINT64_C(15416047104530048870),   UINT64_C(16616704327850020024),
  UINT64_C(13765271222049994590),   UINT64_C(9553188669614806936),
  UINT64_C(4272251828728808217),   UINT64_C(3123085208416913860),
  UINT64_C(4703691135590810639),   UINT64_C(8480017210516557425),
  UINT64_C(17838356952265934096),   UINT64_C(691030049653763100),
  UINT64_C(7819812427723238303),   UINT64_C(8971207588269900824),
  UINT64_C(4732411791786252437),   UINT64_C(7229746094563178650),
  UINT64_C(12524406511234980030),   UINT64_C(14359806896884035376),
  UINT64_C(4088957213943123161),   UINT64_C(13269159361071258212),
  UINT64_C(1763286331730122458),   UINT64_C(9673008117505626296),
  UINT64_C(468633651449630790),   UINT64_C(5934358569667466470),
  UINT64_C(7313290404293520396),   UINT64_C(1597670961235071102),
  UINT64_C(5025909188610392381),   UINT64_C(10138716262034631560),
  UINT64_C(5851091942211023645),   UINT64_C(7694852492057497623),
  UINT64_C(74645141231138861),   UINT64_C(4411245404977987204),
  UINT64_C(14589278564568080480),   UINT64_C(6746886777863561039),
  UINT64_C(9778600193242012155),   UINT64_C(13488289732076671353),
  UINT64_C(9943265100547635000),   UINT64_C(14520042544396022368),
  UINT64_C(13110988178376631737),   UINT64_C(5067243306855493850),
  UINT64_C(5227369909839213065),   UINT64_C(12911283401693777287),
  UINT64_C(15596808454607902367),   UINT64_C(6780235246821033772),
  UINT64_C(16815254996693814382),   UINT64_C(7865737604634419648),
  UINT64_C(11470700880502443413),   UINT64_C(17463842605369289802),
  UINT64_C(10375229584844825920),   UINT64_C(2302692223661218138),
  UINT64_C(15009185093686873901),   UINT64_C(8440000740098484441),
  UINT64_C(5371677889834637982),   UINT64_C(7319223331140178330),
  UINT64_C(15675663114751516275),   UINT64_C(5734369106000883704),
  UINT64_C(6021361108956718326),   UINT64_C(880985938679813634),
  UINT64_C(15591808620739816321),   UINT64_C(9342811058906088408),
  UINT64_C(5278700272408743313),   UINT64_C(3479156154437173906),
  UINT64_C(2945488112931628938),   UINT64_C(4672968146428512678),
  UINT64_C(8020644309401591224),   UINT64_C(4321538453180798668),
  UINT64_C(8726309068554155439),   UINT64_C(17251461027272167439),
  UINT64_C(3549147264548570729),   UINT64_C(1687249075906394484),
  UINT64_C(3780381619161964312),   UINT64_C(14938536235736492430),
  UINT64_C(7583749098287365565),   UINT64_C(17646456489388427636),
  UINT64_C(5357152732353943418),   UINT64_C(10656370574352252323),
  UINT64_C(16050744548039585270),   UINT64_C(7376272549553472872),
  UINT64_C(210396503624536943),   UINT64_C(9479619140313964953),
  UINT64_C(8988114338432775790),   UINT64_C(5741179707067618981),
  UINT64_C(225004560265842467),   UINT64_C(7791199071577708255),
  UINT64_C(7598908028595865927),   UINT64_C(9579686657480688929),
  UINT64_C(7503824031123071835),   UINT64_C(4687133273295971675),
  UINT64_C(8692922161691931484),   UINT64_C(7900406708783220419),
  UINT64_C(1850195995102309480),   UINT64_C(17912170944224469882),
  UINT64_C(10251634957990253501),   UINT64_C(6057599446666127480),
  UINT64_C(17076303991772452408),   UINT64_C(14009843939908348636),
  UINT64_C(9589099120111191267),   UINT64_C(6128501361254701152),
  UINT64_C(8157080375141610531),   UINT64_C(2689724411619737351),
  UINT64_C(1983847288137271128),   UINT64_C(14852399342579517719),
  UINT64_C(4926564222429068688),   UINT64_C(4292338931883748986),
  UINT64_C(10037780057537548144),   UINT64_C(3302456491497779641),
  UINT64_C(7814190729200031458),   UINT64_C(13845382937053709691),
  UINT64_C(5540732218129617767),   UINT64_C(4993969398458045913),
  UINT64_C(8778419991091308972),   UINT64_C(17523920768873204878),
  UINT64_C(13326328111986688698),   UINT64_C(17419399533187799158),
  UINT64_C(17519212848708731923),   UINT64_C(7050307392144718729),
  UINT64_C(15325619694537828775),   UINT64_C(2545317665381709860),
  UINT64_C(9669043322725216112),   UINT64_C(9034533943380159393),
  UINT64_C(16534164061297387274),   UINT64_C(13391660874540870678),
  UINT64_C(8024152007087134099),   UINT64_C(2621779593189821532),
  UINT64_C(6503622289567560538),   UINT64_C(8099566317093627362),
  UINT64_C(8743115801578769377),   UINT64_C(15645676006954842870),
  UINT64_C(4800086506359788194),   UINT64_C(8568351126588727010),
  UINT64_C(4327496322505870542),   UINT64_C(8148464253635682899),
  UINT64_C(17472314051005130882),   UINT64_C(11401514314503097430),
  UINT64_C(1264413388898201802),   UINT64_C(18295734342736564517),
  UINT64_C(15599204261300815003),   UINT64_C(16464623512830755022),
  UINT64_C(4497505599167182723),   UINT64_C(8727263916743355554),
  UINT64_C(9251712024229301332),   UINT64_C(5947849389944194578),
  UINT64_C(7449090372310925047),   UINT64_C(2817285085220130448),
  UINT64_C(4038807804025450758),   UINT64_C(17594175932971845255),
  UINT64_C(330384429096300446),   UINT64_C(8387048913290832432),
  UINT64_C(12388384037096533067),   UINT64_C(9451533425480970048),
  UINT64_C(914008015345014187),   UINT64_C(503781463089385285),
  UINT64_C(18363042712890775554),   UINT64_C(17240204808099033088),
  UINT64_C(17280520442070153331),   UINT64_C(17649645562240744395),
  UINT64_C(9530260256009359098),   UINT64_C(11770520257413124816),
  UINT64_C(14455181494803226867),   UINT64_C(17234733741657529671),
  UINT64_C(15453007263307244019),   UINT64_C(15388023345869506210),
  UINT64_C(16065581574547972487),   UINT64_C(7826595509038282112),
  UINT64_C(2751857923783383567),   UINT64_C(11516124883087448985),
  UINT64_C(3803982844967664326),   UINT64_C(18349599045096386661),
  UINT64_C(15337551711848432718),   UINT64_C(3634736716776259158),
  UINT64_C(3397347751229649745),   UINT64_C(1785767390570757107),
  UINT64_C(6028767562331217249),   UINT64_C(5648599770452775354),
  UINT64_C(8754849942078541617),   UINT64_C(5402390340450764131),
  UINT64_C(16448866263565234313),   UINT64_C(17802182370535016646),
  UINT64_C(18019290558500427430),   UINT64_C(860251762334611523),
  UINT64_C(4651211930848406811),   UINT64_C(15779911310952558808),
  UINT64_C(5918079174238304805),   UINT64_C(9426571056292776685),
  UINT64_C(8230779098408043370),   UINT64_C(1263785162427480374),
  UINT64_C(18322412246193757359),   UINT64_C(2885983044955106576),
  UINT64_C(6929574345232079843),   UINT64_C(14640968283363991576),
  UINT64_C(14647687941327337270),   UINT64_C(10444590532053226605),
  UINT64_C(11570523954715475146),   UINT64_C(2232485819249972403),
  UINT64_C(3902834125961889253),   UINT64_C(6841331492885733399),
  UINT64_C(17051905743158492311),   UINT64_C(15157707119609343818),
  UINT64_C(6407093430857671454),   UINT64_C(2600360352549793483),
  UINT64_C(6394064623199277832),   UINT64_C(6002589367473580314),
  UINT64_C(16577250601467993095),   UINT64_C(15095193798050689318),
  UINT64_C(753986300040379359),   UINT64_C(14455495963272340970),
  UINT64_C(17032976243514186068),   UINT64_C(12482098825405261216),
  UINT64_C(7897723479603340798),   UINT64_C(11161254758223378219),
  UINT64_C(13033382761707372032),   UINT64_C(14203000035675585144),
  UINT64_C(14510039009989583907),   UINT64_C(11635978976000207470),
  UINT64_C(14953963958692675923),   UINT64_C(8114428727276629936),
  UINT64_C(12777588900778478439),   UINT64_C(10829242185446876407),
  UINT64_C(15400358056659330648),   UINT64_C(8212065957432307962),
  UINT64_C(15879138586370458376),   UINT64_C(12126523825105816888),
  UINT64_C(1423948158560631898),   UINT64_C(6420787927542551959),
  UINT64_C(13027803599841204155),   UINT64_C(3648978189369923320),
  UINT64_C(10149473249471886157),   UINT64_C(16221932344659341202),
  UINT64_C(1923013453882356995),   UINT64_C(13565551370530569134),
  UINT64_C(16680851110728807602),   UINT64_C(12885500415361002483),
  UINT64_C(2044225791168535631),   UINT64_C(10148254030679045409),
  UINT64_C(4847735872665675310),   UINT64_C(3655029677055123576),
  UINT64_C(5943267106673146025),   UINT64_C(1716656688147182428),
  UINT64_C(1507332634035943185),   UINT64_C(13050884848496864976),
  UINT64_C(16375581178351279379),   UINT64_C(16109423663831428032),
  UINT64_C(946796111855361855),   UINT64_C(13905834344455169039),
  UINT64_C(15984304674429398916),   UINT64_C(10641735153537526766),
  UINT64_C(17080555130245627346),   UINT64_C(16709285319894015151),
  UINT64_C(12533167485841198547),   UINT64_C(16427160156506318533),
  UINT64_C(15509195092556169313),   UINT64_C(7100192432999781914),
  UINT64_C(6746306597594996618),   UINT64_C(13752444106291363590),
  UINT64_C(17520889061948298582),   UINT64_C(4191989501261508299),
  UINT64_C(4599935823211740456),   UINT64_C(9779454848869131481),
  UINT64_C(8938816043570900262),   UINT64_C(3582478051779126983),
  UINT64_C(8773624686320290327),   UINT64_C(14836449855111795106),
  UINT64_C(15396074307626464832),   UINT64_C(5036548992214997850),
  UINT64_C(8356767832204526402),   UINT64_C(10846481459312704351),
  UINT64_C(11798456834930926782),   UINT64_C(11375757006419579883),
  UINT64_C(16740542776021992138),   UINT64_C(62612107473589692),
  UINT64_C(3926660261532348496),   UINT64_C(6232180320771410911),
  UINT64_C(1240283184959032830),   UINT64_C(17884764084731357668),
  UINT64_C(17034604827844381165),   UINT64_C(14454301438665816039),
  UINT64_C(18409808961021362653),   UINT64_C(12801898560596364794),
  UINT64_C(15560406078716246159),   UINT64_C(1639522546160053631),
  UINT64_C(17185697097406836275),   UINT64_C(2958736021427948261),
  UINT64_C(11622082277428866543),   UINT64_C(5385469910031688314),
  UINT64_C(16316072445882850776),   UINT64_C(12956179944605630641),
  UINT64_C(2947733998521131614),   UINT64_C(1448050625387446394),
  UINT64_C(17578741718679829506),   UINT64_C(4538902347646145186),
  UINT64_C(3017754827507110677),   UINT64_C(13097727693452495437),
  UINT64_C(8393646381997140570),   UINT64_C(4650829836299964598),
  UINT64_C(5358229640217668396),   UINT64_C(1488386347645649690),
  UINT64_C(3786736065885591786),   UINT64_C(10472414583534132239),
  UINT64_C(7983136208423927250),   UINT64_C(6009587081042140303),
  UINT64_C(8210751999230195537),   UINT64_C(2618924637247125821),
  UINT64_C(5756712021156981288),   UINT64_C(4804837560516622144),
  UINT64_C(11815772206243225641),   UINT64_C(14736071088794775205),
  UINT64_C(8632156823064789585),   UINT64_C(2774775927452644651),
  UINT64_C(14044738520600010814),   UINT64_C(6202375465592196087),
  UINT64_C(12735290198766095409),   UINT64_C(7525109883501061435),
  UINT64_C(3133419551802525336),   UINT64_C(4738305999427165168),
  UINT64_C(3740688460641668569),   UINT64_C(2189333522848916492),
  UINT64_C(10214546855289996024),   UINT64_C(11112904105462591877),
  UINT64_C(17353516051684632918),   UINT64_C(10186667619661022291),
  UINT64_C(11422785814664236939),   UINT64_C(12624258116012335849),
  UINT64_C(9147324814832755500),   UINT64_C(13428044702214849660),
  UINT64_C(209142974053824752),   UINT64_C(2714602495671545475),
  UINT64_C(419487800619453681),   UINT64_C(10812333762554299110),
  UINT64_C(18154933114171618387),   UINT64_C(11842143732452461532),
  UINT64_C(17213178762789364513),   UINT64_C(3899926917313919835),
  UINT64_C(12460036248419146202),   UINT64_C(7228470426678573963),
  UINT64_C(5133966650444210539),   UINT64_C(3483909093435180203),
  UINT64_C(16048301144307507438),   UINT64_C(11284060757224377403),
  UINT64_C(2858675679581954777),   UINT64_C(14855419925868158989),
  UINT64_C(5949424722517574382),   UINT64_C(5547925951846580451),
  UINT64_C(12117005625290653075),   UINT64_C(5822859661068133206),
  UINT64_C(13637983431466669912),   UINT64_C(5596912988819333262),
  UINT64_C(11225918198224451234),   UINT64_C(3337823058530137790),
  UINT64_C(1381508083085565992),   UINT64_C(11362247403096569101),
  UINT64_C(11803973917646234120),   UINT64_C(10023772197112690347),
  UINT64_C(10529342660368598523),   UINT64_C(12882036257100635224),
  UINT64_C(14115744519722301565),   UINT64_C(14166560328837005179),
  UINT64_C(9298859510586883881),   UINT64_C(6206312234504605983),
  UINT64_C(16407299249578835606),   UINT64_C(9245766855080765308),
  UINT64_C(14147991261605811730),   UINT64_C(11038716840557479583),
  UINT64_C(15661699022629737835),   UINT64_C(11594380204432646034),
  UINT64_C(10024716064344886400),   UINT64_C(16330211422953717528),
  UINT64_C(5507333344314612327),   UINT64_C(15432940173759502597),
  UINT64_C(14826683409786885174),   UINT64_C(9691235400485782442),
  UINT64_C(4189312480055327445),   UINT64_C(16378244074941503055),
  UINT64_C(2380102282585655784),   UINT64_C(15947049488013350952),
  UINT64_C(2337858759339360607),   UINT64_C(4932464703542879766),
  UINT64_C(4198203331597167109),   UINT64_C(571294333840657834),
  UINT64_C(6642056047322558779),   UINT64_C(10752743604915081999),
  UINT64_C(9633070184851866792),   UINT64_C(16956210140292817116),
  UINT64_C(6366663584655484826),   UINT64_C(13948294099420773006),
  UINT64_C(1592895084705588752),   UINT64_C(12628274017123917953),
  UINT64_C(13260381721018159094),   UINT64_C(16854278131892554594),
  UINT64_C(4003139047820734394),   UINT64_C(15443049083646764800),
  UINT64_C(8285046471759065224),   UINT64_C(14169947479703019055),
};  // rand_table


uint64_t random64()
{
  uint64_t ret = rand_table[rand_index];
  if (++rand_index == RAND_TABLE_SIZE)
    rand_index = 0;
  return ret;
}


void print_time(FILE* f, double seconds)
{
  assert(f != 0);

  if (seconds < 0) {
    fprintf(f, "negative time %g", seconds);
    return;
  }

  long csecs = (uint64_t)((seconds * 100) + 0.5);
  long secs = csecs / 100;
  csecs = csecs % 100;
  long mins = secs / 60;
  secs = secs % 60;
  long hours = mins / 60;
  mins = mins % 60;
  long days = hours / 24;
  hours = hours % 24;

  if (days > 0)
    fprintf(f, "%ld %s, ", days, (days > 1 ? "days" : "day"));
  if (days > 0 || hours > 0)
    fprintf(f, "%ld %s, ", hours, (hours > 1 ? "hours" : "hour"));
  if (days > 0 || hours > 0 || mins > 0)
    fprintf(f, "%ld %s, ", mins, (mins > 1 ? "minutes" : "minute"));
  fprintf(f, "%ld.%02ld seconds", secs, csecs);
}
